package com.prd.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 离职管理数据表
 * </p>
 *
 * @author lizhaoyi
 * @since 2024-01-03
 */
@Data
@ApiModel(value="OaDepartDO对象", description="离职管理数据表")
public class OaDepartDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    @ApiModelProperty(value = "姓名")
    private String name;

    @ApiModelProperty(value = "电话")
    private String phone;

    @ApiModelProperty(value = "部门")
    private String dept;

    @ApiModelProperty(value = "岗位")
    private String post;

    @ApiModelProperty(value = "职务")
    private String position;

    @ApiModelProperty(value = "类型,0-合同到期；1-法定退休；2-辞职；3-辞退")
    private Integer type;

    @ApiModelProperty(value = "入职日期")
    private Date entryDate;

    @ApiModelProperty(value = "申请离职日期")
    private Date askDepartDate;

    @ApiModelProperty(value = "离职申请描述")
    private String departDescribe;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "备注图片")
    private String remarkPhoto;

    @ApiModelProperty(value = "依据id")
    private String basisId;

    @ApiModelProperty(value = "面谈id")
    private String meetingId;

    @ApiModelProperty(value = "补偿金")
    private BigDecimal compensation;

    @ApiModelProperty(value = "申请人")
    private String applicant;

    @ApiModelProperty(value = "审核人")
    private String reviewBy;

    @ApiModelProperty(value = "批准人")
    private String approveBy;

    @ApiModelProperty(value = "抄送人")
    private String ccTo;

    @ApiModelProperty(value = "编号")
    private Integer num;

    @ApiModelProperty(value = "状态,0-待审核；1-审核不通过；2-待批准；3-不批准；4-待声明；5-待人事确认；6-待交接；7-已交接；")
    private Integer status;

    @ApiModelProperty(value = "工作流id")
    private String processId;

    @ApiModelProperty(value = "离职声明id")
    private String departStatement;

    @ApiModelProperty(value = "离职证明描述")
    private String departCertificateDescribe;

    @ApiModelProperty(value = "离职公司")
    private String departCompany;

    @ApiModelProperty(value = "离职时间")
    private Date departDatetiem;

    @ApiModelProperty(value = "创建人")
    private String createdBy;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createdTime;

    @ApiModelProperty(value = "修改人")
    private String updateBy;

    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "工作交接对象列表")
    private List<OaDepartWorkHandoverDTO> workHandoverDTOS;

    @ApiModelProperty(value = "离职声明对象")
    private OaDepartStatementDTO statementDTO;

}
